                      						Добро пожаловать в Вики!

####Описание функций написано для версии 1.21, но большая часть будет работать и в предыдущих версиях
####Результат работы функции записывается в ``$result``
####Если функция выполнилась успешно в $result запишется `1`, `0` при ошибке. Про иные случаи будет написано отдельно
####Функции можно писать в любом регистре и без `_`
####Если в переданных данных есть ошибка, то возвращается `badRequest`

# Новые функции
## Прокси
Поддерживаются http/socks5 прокси с авторизацией
#### Подключиться к http прокси. Вернёт 1 если прокси установлены. Вернёт 0 если протокол или число параметров указаны неправильно
	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][http:1.2.3.4:80] 
с авторизацией

	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][http:1.2.3.4:80:login:pass]

#### Подключиться к socks5 прокси. Возвращает как и для http
	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][socks5:1.2.3.4:1080]
с авторизацией

	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][socks5:1.2.3.4:1080:login:pass] 

#### Подключиться к сети TOR. 
	[CBROWSER_COMMAND][$MODEL_NAME][TOR][$TOR_port]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][socks5:127.0.0.1:$TOR_port]

#### Отключиться от сети TOR
	[CBROWSER_COMMAND][$MODEL_NAME][DEL_TOR]

#### Отключить прокси, всегда возращает 1 (`>=v1.20`)
	[CBROWSER_COMMAND][$MODEL_NAME][OFF_PROXY]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][PROXY_OFF]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][SET_PROXY][none] 

#### Включить прокси, если они были отключены. Вернёт 0 если прокси не указаны и 1, если прокси удалось включить (`>=v1.20`)

	[CBROWSER_COMMAND][$MODEL_NAME][ON_PROXY]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][PROXY_ON]


## Куки и кеш
### Сохранение кук по стандартному пути(../save/cookies/)
	[CBROWSER_COMMAND][$MODEL_NAME][SAVE_COOKIES][$domain||_fileName_]
если нужно дописать в файл, то в третьем параметре '1'

	[CBROWSER_COMMAND][$MODEL_NAME][SAVE_COOKIES][$domain||_fileName_||1] - дописать в файл

### Сохранение кук в произвольный файл
	[CBROWSER_COMMAND][$MODEL_NAME][SAVE_COOKIES_TO_PATH][$domain||_fileName_]
если нужно дописать в файл, то в третьем параметре '1'

	[CBROWSER_COMMAND][$MODEL_NAME][SAVE_COOKIES_TO_PATH][$domain||_fileName_||1]

### Удалить куки для текущей вкладки
	[CBROWSER_COMMAND][$MODEL_NAME][DELETE_ALL_COOKIES]

### Установить директорию сохранения кеша для текущей вкладки по стандартному пути(../save/cacheChrom/)
	[CBROWSER_COMMAND][$MODEL_NAME][SET_CACHE_DIR][_cache_dir_]

### Установить директорию сохранения кук для текущей вкладки по стандартному пути(../save/coockieChrom/)
	[CBROWSER_COMMAND][$MODEL_NAME][SET_COOKIE_DIR][_cook_dir_]

### Указать произвольную директорию сохранения кеша текущей вкладки
	[CBROWSER_COMMAND][$MODEL_NAME][SET_OWN_CACHE_DIR][/home/user/miniPoster/mydata_cache]

### Указать произвольную директорию сохранения кук текущей вкладки
	[CBROWSER_COMMAND][$MODEL_NAME][SET_OWN_COOKIE_DIR][/home/user/miniPoster/mydata_cook]

### Задать куки из строки
Формат строки "домен|имя|значение|домен1|имя1|значение1|домен2|имя2|значение2|..."
Функция вернёт(в $result) число добавленных кук. Если число параметров не совпадает, то вернёт -1

	[CBROWSER_COMMAND][$MODEL_NAME][SET_COOKIES_FROMSTRING||домен|имя|значение|домен1|имя1|значение1|домен2|имя2|значение2|...]

### Получить значение куки по имени
Если такого имени нет, то вернёт пустую строку

	[CBROWSER_COMMAND][$MODEL_NAME][GET_COOKIE_VALUE_BY_NAME][_name_]

### Получить значение куки по имени на указанном домене
Если такого имени нет, то вернёт пустую строку. В предыдущих версиях возращает 1, если имя не существует

	[CBROWSER_COMMAND][$MODEL_NAME][GET_DOMAIN_COOKIE_VALUE_BY_NAME][_domain_||_name_]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][GET_DOMAIN_COOKIE_BY_NAME][_domain_||_name_]


### Получить куки для указанного домена
Результат будет в формате "домен|имя|значение|домен1|имя1|значение1|..."

	[CBROWSER_COMMAND][$MODEL_NAME][GET_COOKIE_BY_DOMAIN][_domain_]


## reCAPTCHA v2/v3, hCaptcha(`>=v1.20`)
### Загрузить reCAPTCHA v2
	[CBROWSER_COMMAND][$MODEL_NAME][V2][_URL_||_SITE_KEY_]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][OPEN_URL][_URL_||_SITE_KEY_]

### Загрузить reCAPTCHA v3
	[CBROWSER_COMMAND][$MODEL_NAME][V3][_URL_||_SITE_KEY_]

### Загрузить reCAPTCHA v3 с указанным action
	[CBROWSER_COMMAND][$MODEL_NAME][V3][_URL_||_SITE_KEY_||_ACTION_]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][OPEN_URL][_URL_||_SITE_KEY_||_ACTION_]

### Загрузить hCaptcha `>=v1.20`
        [CBROWSER_COMMAND][$MODEL_NAME][HCAP][_URL_||_SITE_KEY_]

### Получить ключ пройденной reCAPTCHA
Если капча не пройдена возращает пустую строку. Если капча не загружалась вернёт badRequest

	[CBROWSER_COMMAND][$MODEL_NAME][RECAPTCHA_RESPONSE]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][RR]

### Получить ключ пройденной hCaptcha `>=v1.20`
Если капча не пройдена возращает пустую строку. Если капча не загружалась вернёт badRequest

        [CBROWSER_COMMAND][$MODEL_NAME][EVAL_JS][hcaptcha.getResponse()]
аналогичная запись, но работоспособность не гарантируется

	[CBROWSER_COMMAND][$MODEL_NAME][RR]

##Страница
### Загрузить сайт
	[CBROWSER_COMMAND][$MODEL_NAME][OPEN][https://duckduckgo.com/]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][OPEN_URL][https://duckduckgo.com/]

### Автозагрузка изображений
Включено по умолчанию. Всё, что не 0 - включить

	[CBROWSER_COMMAND][$MODEL_NAME][IMAGES][0]

### Выполнить JavaScript на странице
Результатом будет последняя затронутая переменная. Если результат пустой, то вернет "empty result"

	[CBROWSER_COMMAND][$MODEL_NAME][EVAL_JS][$script]

### Дождаться загрузки страницы и продолжить выполнение шаблона
	[CBROWSER_COMMAND][$NAME][WAIT_LOAD]

### Проверить загружена ли страница
`YES` если загружена и `NO` если нет

	[CBROWSER_COMMAND][$MODEL_NAME][IS_LOAD]

### Включение логирования ошибок в JS (`>=v1.21`)
1 - включить, всё остальное - выключить

	[CBROWSER_COMMAND][$MODEL_NAME][JS_ERROR_LOGGING][1]

### Установить уровень логирования в JS (`>=v1.21`)
0 - информационные сообщения.
1 - предупреждения.
2 - ошибки.
3 - логировать всё сразу

	[CBROWSER_COMMAND][$MODEL_NAME][JS_LOG_LEVEL][3]

### Отобразить окно с ошибкой в JS (`>=v1.21`)
1 - включить, всё остальное - выключить.
Окно будет появлятся даже если логирования ошибок отключено.

	[CBROWSER_COMMAND][$MODEL_NAME][JS_ON_ERROR_ALERT][1]

### Получить ошибки в JS (`>=v1.21`)
Если ошибок нет - вернёт пустую строку
Формат следующий: {текст ошибки} : line {строка на которой ошибка}

	[CBROWSER_COMMAND][$MODEL_NAME][JS_ERROR]
	[DISPLAY][В браузере страшная ошибка: $result]

### Очистить список ошибок JS (`>=v1.21`)
	[CBROWSER_COMMAND][$MODEL_NAME][CLEAR_JS_ERRORS]

### Сделать скриншот заданной области и сохранить под именем $file\_name
	[CBROWSER_COMMAND][$MODEL_NAME][SCREEN_SHOT][$file_name||x1:y1||x2:y2]

### Изменить значение адресной строки без перезагрузки страницы(`>=v1.33`)
	[CBROWSER_COMMAND][$MODEL_NAME][SET_URL][https://djoser-blog.ru/forum]

### Нажать на элемент страницы с указанным id(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_CLICK_BY_ID][element_id]

### Нажать на элемент страницы с указанным классом(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_CLICK_BY_CLASS][class_name]

### Установить значение value у элемента страницы с указанным id(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_SET_VALUE_BY_ID][element_id|value]

### Установить значение value у элемента страницы с указанным классом(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_SET_VALUE_BY_CLASS][class_name|value]

### Установить значение innerHTML у элемента страницы с указанным id(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_SET_INNER_HTML_BY_ID][element_id|inner_html]

### Установить значение innerHTML у элемента страницы с указанным классом(`>=v1.34`)
	[CBROWSER_COMMAND][$MODEL_NAME][ELEMENT_SET_INNER_HTML_BY_CLASS][class_name|inner_html]

### Изменить значение заголовка Accept для языка(`>=v1.33`)
	[CBROWSER_COMMAND][$MODEL_NAME][SET_ACCEPT_HEADER][text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]

Значение по умолчанию: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3

## Эмуляция мыши
### Клик левой кнопкой мыши в точку
	[CBROWSER_COMMAND][$MODEL_NAME][LBUTTON_CLICK][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][LBC][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_EMULATION][LBUTTON_CLICK||x:y]

### Клик правой кнопкой мыши в точку
	[CBROWSER_COMMAND][$MODEL_NAME][RBUTTON_CLICK][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][RBC][x:y]
аналогичная запись
	
	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_EMULATION][RBUTTON_CLICK||x:y]

### Зажать левую кнопку мыши в точке
	[CBROWSER_COMMAND][$MODEL_NAME][LBUTTON_PRESS][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][LBP][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_EMULATION][LBUTTON_PRESS||x:y]

### Отпустить левую кнопку мыши в точке
	[CBROWSER_COMMAND][$MODEL_NAME][LBUTTON_RELEASE][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][LBR][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_EMULATION][LBUTTON_RELEASE||x:y]

### Эмуляция движения мыши в заданную точку
	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_MOVE][x:y]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][MOUSE_EMULATION][MOUSE_MOVE||x:y]

## Полосы прокрутки
### Прокрутить страницу по вертикали на заданное расстояние из текущего положения
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_Y][500]
можно указывать и отрицательные числа, чтобы скролить вверх

	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_Y][-400]

### Установить вертикальной полосе прокрутки определенное значение
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_TO_Y][1200]

### Получить текущее значение полосы прокрутки по вертикали
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_Y_POSITION]

### Получить максимальное значение полосы прокрутки по вертикали
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_Y_MAX]

### Прокрутить страницу по горизонтали на заднное растояние
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_X][500]
можно указывать и отрицательные числа, что скролить влево
	
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_X][-400]

### Прокрутить страницу по горизонтали до определенной длины
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_TO_X][700]

### Получить текущее значение полосы прокрутки по горизонтали
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_X_POSITION]

### Получить максимальное значение полосы прокрутки по горизонтали
	[CBROWSER_COMMAND][$MODEL_NAME][SCROLL_X_MAX]


## 2D ускорение
### Включит 2d ускорение. Включено по умолчанию
	[CBROWSER_COMMAND][$MODEL_NAME][ENABLE_ACCELERATION]

### Выключит 2d ускорение
	[CBROWSER_COMMAND][$MODEL_NAME][DISABLE_ACCELERATION]


## Окно
### Изменить заголовок окна на переданный текст
	[CBROWSER_COMMAND][$MODEL_NAME][SET_WINDOW_TITLE][Заголовок!]

### Установить произвольный UserAgent в браузере
	[CBROWSER_COMMAND][$MODEL_NAME][SET_USERAGENT][_custom_user_agent]

### Изменить размер окна
	[CBROWSER_COMMAND][$MODEL_NAME][SET_WINDOW_SIZE][1280:1024]
можно указывать и отрицательные числа. В этом случае, размер будет уменьшен на заданные значения

	[CBROWSER_COMMAND][$MODEL_NAME][SET_WINDOW_SIZE][-50:-200]

### Изменить положение окна
	[CBROWSER_COMMAND][$MODEL_NAME][SET_POSITION][500:800]
можно указывать и отрицательные числа. В этом случае, размер будет уменьшен на заданные значения
	
	[CBROWSER_COMMAND][$MODEL_NAME][SET_POSITION][-20:-254]

### Проверить включен ли JavaScript в браузере
	[CBROWSER_COMMAND][$MODEL_NAME][IS_JS]

### Включить JavaScript на вкладке
	[CBROWSER_COMMAND][$MODEL_NAME][ENABLE_JS]

### Выключить JavaScript на вкладке
	[CBROWSER_COMMAND][$MODEL_NAME][DISABLE_JS]

### Получить текущий url
	[CBROWSER_COMMAND][$MODEL_NAME][GET_URL]

### Проверка наличая пикселя в заданной области
Первые два чила - кординаты левого верхнего угла, вторые два - правый нижный

	[CBROWSER_COMMAND][$MODEL_NAME][PIXEL_EXISTS][12:40||50:60||#66ff99]

### Установить произвольную HTML страницу
	[CBROWSER_COMMAND][$MODEL_NAME][SET_HTML][<script>alert("html страница загружена в браузер!");</script>]

### Установить произвольную HTML страницу, для указанного домена. Функция позволяет подгружать сторонние формы решения каптч
	[CBROWSER_COMMAND][$MODEL_NAME][SET_HTML][_HTML_||_BASE_URL_]

### Получить HTML-код страницы
	[CBROWSER_COMMAND][$MODEL_NAME][GET_HTML]

### Закрыть браузер
	[CBROWSER_COMMAND][$MODEL_NAME][CLOSE]
аналогичная запись

	[CBROWSER_COMMAND][$MODEL_NAME][CLOSE_WINDOW]

### Свернуть браузер
	[CBROWSER_COMMAND][$MODEL_NAME][WINDOW_MINIMAZE]

### Развернуть браузер на весь экран
	[CBROWSER_COMMAND][$MODEL_NAME][WINDOW_MAXIMIZED]

### Обычное состояние браузера
	[CBROWSER_COMMAND][$MODEL_NAME][WINDOW_RESTORE]

### Загрузить следующую страницу из истрории текущей владки
	[CBROWSER_COMMAND][$MODEL_NAME][FORWARD]

### Загрузить предыдущую страницу из истрории текущей владки
	[CBROWSER_COMMAND][$MODEL_NAME][BACK]

### Перезагрузить текущую вкладку 
	[CBROWSER_COMMAND][$MODEL_NAME][RELOAD]

### Скрыть нижнюю панель
	[CBROWSER_COMMAND][$MODEL_NAME][HIDE_BAR]

### Показать нижнюю панель
	[CBROWSER_COMMAND][$MODEL_NAME][SHOW_BAR]

### Проверить видна ли нижняя панель
	[CBROWSER_COMMAND][$MODEL_NAME][IS_BAR]

## Аббревиатуры и сокращения
`V2` - загрузить страничку для решения reCAPTCHA2

`V3` - загрузить страничку для решения reCAPTCHA3

`RR`   - получить ключ reCAPTCHA

`LBC` - клик левой кнопкой мыши в точку

`RBC` - клик правой кнопкой мыши в точку

`LBP` - зажать левую кнопку мыши в точке

`LBR` - отпустить левую кнопку мыши в точке

`MINIMAZE` - свернуть браузер

`RESTORE` - обычное состояние браузера

`MAXIMIZE` - развернуть браузер на весь экран

`CLOSE` - закрыть браузер


## Работа с вкладками
####Работа с вкладками осуществляется через указание `id` нужной вкладки. Если он не передан, то команды выполняются над текущей вкладкой
### Добавить вкладку
В `$result` запишется `id` созданной вкладки

	[CBROWSER_COMMAND][$MODEL_NAME][ADD_TAB]
	[DISPLAY][Новая вкладка получила id = $result]

### Добавить вкладку с заданным именем
	[CBROWSER_COMMAND][$MODEL_NAME][ADD_TAB][$name]
	[DISPLAY][Новая вкладка с именем $name имеет id = $result]

### Закрыть вкладку по `id`
	[CBROWSER_COMMAND][$MODEL_NAME][CLOSE_TAB]      id не указан -> закроет текущую вкладку
закрыть вкладку по её id

	[CBROWSER_COMMAND][$MODEL_NAME][CLOSE_TAB][_id_]

### Закрыть вкладку по её имени (`>=v1.3`)
	[CBROWSER_COMMAND][$MODEL_NAME][CLOSE_TAB_BY_NAME][_name_]

### Получить `id` текущей вкладки
	[CBROWSER_COMMAND][$MODEL_NAME][GET_TAB_ID]
	[DISPLAY][Текущая вкладка имеет id = $result]

### Получить `id` всех вкладок (`>=v1.21`)
Возвращает список id в формате "1|2|3|4", если вкладок нет - вернёт пустую строку

	[CBROWSER_COMMAND][$MODEL_NAME][GET_IDS]
	[DISPLAY][id вкладок = $result]

### Получить число вкладок
	[CBROWSER_COMMAND][$MODEL_NAME][GET_TAB_COUNT]
	[DISPLAY][Открыто $result вкладок]

### Переключиться на вкладку с указанным `id`
	[CBROWSER_COMMAND][$MODEL_NAME][TAB_FOCUS][5]
	[DISPLAY][Вкладка с id = 5 стала активной]

### Переключиться на вкладку с указанным именем (`>=v1.3`)
	[CBROWSER_COMMAND][$MODEL_NAME][TAB_FOCUS_BY_NAME][_name_]
	[DISPLAY][Вкладка с именем _name_ стала активной]

### Проверить открыта ли вкладка с указанным id
	[CBROWSER_COMMAND][$MODEL_NAME][IS_TAB_EXISTS][5]
        
### Проверить открыта ли вкладка с указанным именем
	[CBROWSER_COMMAND][$MODEL_NAME][IS_TAB_NAME_EXISTS][$name]

### Остальные команды тоже поддерживают работу с вкладками, id указывается перед командой
	[CBROWSER_COMMAND][$MODEL_NAME][$id||SCREEN_SHOT][screen||20:90||120:220]
